//package com.topisv.tms.utils.http;
//
//import java.util.Date;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.TreeMap;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import com.topisv.tms.api.EdbAPITool;
//import com.topisv.tms.entity.edb.EdbTask;
//import com.topisv.tms.service.edb.EdbTaskService;
//import com.topisv.tms.service.stock.outstorage.OutstorageBillService;
//import com.topisv.tms.utils.TimeUtil;
//
//import net.sf.json.JSONArray;
//import net.sf.json.JSONObject;
//
//@Component
//public class SynchroEdbOutStoreGet implements Runnable {
//
//	private static final Logger log = LoggerFactory.getLogger(SynchroEdbOutStoreGet.class);
//	
//	private static final Long timer=1000l;//休眠时间
//	@Autowired
//	private EdbTaskService edbTaskService;
//	
//	@Autowired
//	private OutstorageBillService outstorageService;
//	private Object o=new Object();
//	
//	private volatile boolean flag=true;
//	@Override
//	public void run() {
//		String start=null;
//		Date startDate=null;
//		String end=null;
//		Date endDate=null;
//		
//		int intervalTime = 60000;
//		EdbTask edbTask = null;
//		
//		try {
//			edbTask = edbTaskService.findTask("SUN", "GZ", "edbOutStoreGet");
//			if(edbTask == null)
//			{
//				return;
//			}
//			startDate = edbTask.getStartTime();
//			intervalTime = Integer.parseInt(edbTask.getIntervalTime());
//			if(start==null){
//				start=TimeUtil.getNowDateString(startDate);
//			}
//			log.info("E店宝出库单读取的初始时间为："+start);
//			//startDate=TimeUtil.getDateMMSS(start);
//			endDate=edbTask.getEndTime();
//			
//			if(end==null){
//				end=TimeUtil.getNowDateString(endDate);
//			}
//			log.info("E店宝出库单读取的结束时间为："+end);
//			//endDate=TimeUtil.getDateMMSS(end);
//			
//		} catch (Exception e1) {
//			log.error("读取配置文件异常", e1);
//			e1.printStackTrace();
//		}
//		synchronized (this) {
//			while(flag){
//				//轮训sysinfo数据库的数据
//				try {
//					log.info("E店宝入库单起始时间："+start);
//					log.info("E店宝入库单终止时间："+end);
//					doSyncInStore(edbTask,"1");
//					Long time=System.currentTimeMillis();//当前时间
//					
//					Long startLong=startDate.getTime();//起始时间
//					Long endLong=endDate.getTime();//结束时间
//					
//					//将起始时间设置为结束时间
//					start=end;
//					startDate=endDate;
//					
//					if(endLong>time){
//					   this.wait(timer);
//					   endDate=new Date();
//					   end=TimeUtil.getNowDateString(endDate);
//					}else{
//						endDate=new Date(endLong+intervalTime);
//						endLong=endDate.getTime();//结束时间
//						if(endLong>time){
//							this.wait(timer);
//							endDate=new Date();
//							end=TimeUtil.getNowDateString(endDate);
//						}else{
//							end=TimeUtil.getNowDateString(endDate);
//						}
//					}
//					edbTask.setStartTime(startDate);
//					edbTask.setEndTime(endDate);
//					
//					if(time%1000==0){
//						edbTaskService.save(edbTask);
//					}
//					this.wait(timer);
//				} catch (Exception e) {
//					log.error("E店宝入库单数据异常", e);
//					e.printStackTrace();
//				}
//			}
//		}
//		
//
//	}
//	
//	/**
//	 * 查询交易订单
//	 * @param con
//	 * @param start
//	 * @param end
//	 * @throws Exception
//	 */
//	public void doSyncInStore(EdbTask edbTask,String page_no)throws Exception {
//		
//		String param = edbTask.getParam();
//		Map<String,String> paramMap = getParam(param);
//		Date startDate = edbTask.getStartTime();
//		Date endDate = edbTask.getEndTime();
//		paramMap.put("begin_time", TimeUtil.getNowDateStringDD(startDate));
//		paramMap.put("end_time", TimeUtil.getNowDateStringDD(endDate));
//		paramMap.put("page_no", page_no);
//		paramMap.put("page_size", edbTask.getPagesize());
//		int pagenum = Integer.parseInt(page_no);
//		String result = EdbAPITool.edbInterface(edbTask, paramMap);
//		JSONObject json = JSONObject.fromObject(result);
//		if(json.containsKey("Success"))
//		{
//			JSONObject Success = json.getJSONObject("Success");
//			JSONObject items = Success.getJSONObject("items");
//			int total_results = Success.getInt("total_results");
//			JSONArray  item = items.getJSONArray("item");
//			if(total_results>0)
//			{
//				for(int i=0; i<item.size(); i++)
//				{
//					JSONObject outStoreItem = (JSONObject)item.get(i);
//					String customerCode = edbTask.getCustomerCode();
//					String warehouseCode_out = edbTask.getWarehouseCode();
//					String warehouseCode_in = customerCode;
//					String aboutCode = outStoreItem.getString("out_store_tid");
//					String out_store_type = outStoreItem.getString("out_store_type");
//					if("1".endsWith(out_store_type) || "299".endsWith(out_store_type)|| "300".equals(out_store_type) || "301".endsWith(out_store_type)|| "307".equals(out_store_type))//调拨出库:299/返厂出库:300/领用出库:301/其它:307
//					{
//						JSONArray  outstore_tid = items.getJSONArray("outstore_tid_item");
//						Map<String, Integer> infoMap=new HashMap<String, Integer>();
//						for(int j=0; j<outstore_tid.size(); j++)
//						{
//							JSONObject outstore_tid_item = (JSONObject)outstore_tid.get(j);
//							infoMap.put(outstore_tid_item.getString("bar_code"), outstore_tid_item.getInt("out_store_num"));
//						}
//						outstorageService.createBillEdb(customerCode, warehouseCode_out, warehouseCode_in,aboutCode, infoMap, "return");
//					}
//					else
//					{
//						log.info("E店宝暂不支持的出库类型："+aboutCode + " , type:" + out_store_type);
//					}
//					
//				}
//				pagenum++;
//				doSyncInStore(edbTask,pagenum+"");
//			}
//		}
//	}
//	
//	public Map<String,String> getParam(String param)
//	{
//		TreeMap<String, String> map = new TreeMap<String, String>();
//		if("".equals(param) || param == null)
//		{
//			return map;
//		}
//		String[] entrys = param.split("::");
//		for(String entry : entrys)
//		{
//			String[] p = entry.split("#");
//			map.put(p[0], p[1]);
//		}
//		return map;
//	}
//	public void setFlag(boolean flag) {
//		this.flag = flag;
//	}
//
//}
